// compnents/stars/stars.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    scores: Number
  },

  /**
   * 组件的初始数据
   */
  data: {
    arrstars: []
  },
  /**
   * 需要对于接收的数字进行转换，转换为一个数组，该数组标识星星的显示（由10分制转为5分的星星格式）
   */
  lifetimes: {
    // 在组件完全初始化完毕、进入页面节点树后， attached 生命周期被触发
    attached: function () {
      this.setData({
        arrstars: this.transformScore(this.data.scores)
      });
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 写算法实现从10分制数字转换为5分制，并且转换为星星的格式
     * @param {*} scores 
     */
    transformScore(scores) {
      // 声明一个初始化的数组，全部都为0，代表空心的星星
      const arr = [0, 0, 0, 0, 0]
      // 将10分制转为5分制
      let sc = scores / 2
      // 提前处理0分
      if (sc == 0) return arr;
      // 提取整数
      let num = parseInt(sc);
      // 将整数值转换为实心的星星
      for (let i = 0; i < num; i++) {
        arr[i] = 1;
      }
      // 判断是否有半星存在，规则自己定义
      let half = sc - num;
      if (half >= 0.1) arr[num] = 5
      return arr;
    }
  }
})